#ifndef QR_CODE_TARGET_H
#define QR_CODE_TARGET_H

#include <opencv2/opencv.hpp>

class IQrCodeTarget
{
public:
	virtual ~IQrCodeTarget() = default;

	virtual void showImage(const cv::Mat& image) = 0;
};

class QrCodeTargetWindow : public IQrCodeTarget
{
public:
	QrCodeTargetWindow();
	virtual ~QrCodeTargetWindow() = default;

	virtual void showImage(const cv::Mat& image) override;

private:
	std::string mWindowName;

};

class QrCodeTargetVideo : public IQrCodeTarget
{
public:
	QrCodeTargetVideo();
	virtual ~QrCodeTargetVideo();

	virtual void showImage(const cv::Mat& image) override;

private:
	double mFps = 25.0;
	double mDurationPerImage = 1.0;
	std::string mVideoPath;
	cv::VideoWriter writer;
};

#endif

